package server.model.remotes;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.Vector;

import client.remotes.ICommunicator;
import client.whiteboard.model.DrawingData;
import server.model.meeting.Logbook;
import server.model.meeting.Message;

/**
 * IMeeting.java (server.model.remotes) extends Remote;
 * Interface van Meeting.java (server.model.meeting);
 */
public interface IMeeting extends Remote{

	/**
	 * Een bericht verzenden naar alle andere deelnemers;
	 * @param message : Het bericht;
	 * @throws RemoteException
	 */
	public void distributeMessage(Message message)throws RemoteException;

	/**
	 * Een whiteboard afbeelding verzenden naar alle andere deelnemers;
	 * @param coordinates : De coordinaten van het whiteboard;
	 * @throws RemoteException
	 */
	public void distributeWhiteboard(String username, DrawingData drawingData)throws RemoteException;

	/**
	 * Toegang krijgen tot het whiteboard;
	 * @return true : Acces tot het whiteboard;
	 * @throws RemoteException
	 */
	public int getWhiteboardAccess()throws RemoteException;

	/**
	 * Het logboek van een vergadering opvragen;
	 * @return true : Het logboek is opgevraagd;
	 * @throws RemoteException
	 */
	public Logbook getLogbook()throws RemoteException;

	/**
	 * Voeg een luisteraar(deelnemer van de vergadering) toe;
	 * @param communicator : De gegevens van de communicator;
	 * @throws RemoteException
	 */
	public void addCommunicator(ICommunicator communicator)throws RemoteException;
}
